home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / C64 / R-Shows / (c)expo87.d64 / recover 1541.c (.txt) < prev    next >
Commodore BASIC  |  2007-02-04  |  4KB  |  94 lines

  1. 1 REM ***********************************************************
  2. 2 REM *        'RECOVER.1541'                RECOVER            *
  3. 3 REM *                                                         *
  4. 4 REM *           VERSION 2.0   12/10/82   LPS                  *
  5. 5 REM *                                                         *
  6. 6 REM *        DESIGNED BY    - CIMMARON CORPORATION            *
  7. 7 REM *        MODIFIED BY    - CBM AUST                        *
  8. 8 REM *                                                         *
  9. 9 REM ***********************************************************
  10. 20 DN$=""
  11. 21 RT$="":RT$=RT$+RT$
  12. 22 C0$=CHR$(0):CR$=CHR$(13):EX$=CHR$(147)
  13. 23 SP$="                                          "
  14. 80 DIMFL$(223),T%(223),S%(223),DT%(223),DS%(223),BL%(223)
  15. 90 M=53280:POKEM,1:POKEM+1,1:POKE53272,23:OPEN1,8,15:GOTO1000
  16. 500 REM *** READ SCRATCHED DIRECTORY [9,0,FL$(FL%)]
  17. 501 OPEN9,8,9,"#":T%=18:S%=1:FL%=0
  18. 502 FL%=0:PRINT#1,"U1"9;0;T%;S%:PRINT#1,"B-P"9;0
  19. 503 GET#9,NT$:NT%=0:IFNT$<>""THENNT%=ASC(NT$)
  20. 504 GET#9,NS$:NS%=0:IFNS$<>""THENNS%=ASC(NS$)
  21. 505 FORI=2TO226STEP32:PRINT#1,"B-P"9;I:GET#9,TY$:IFTY$<>""GOTO511
  22. 506 GET#9,T$:IFT$=""THENT$=C0$:GOTO511
  23. 507 GET#9,S$:IFS$=""THENS$=C0$
  24. 508 T%(FL%)=ASC(T$):S%(FL%)=ASC(S$):DT%(FL%)=T%:DS%(FL%)=S%:BP%(FL%)=I
  25. 509 PRINT#1,"B-P"9;I+19:PRINT#9,CHR$(13);:PRINT#1,"B-P"9;I+3
  26. 510 INPUT#9,FL$(FL%):FL%=FL%+1
  27. 511 NEXTI:T%=NT%:S%=NS%:IFT%<>0GOTO502
  28. 512 CLOSE9:RETURN
  29. 600 REM *** GET LINK [9(OPEN),NT%,NS%]
  30. 601 PRINT#1,"U1"9;0;T%;S%:PRINT#1,"B-P"9;0
  31. 602 GET#9,NT$:NT%=0:IFNT$<>""THENNT%=ASC(NT$)
  32. 603 GET#9,NS$:NS%=0:IFNS$<>""THENNS%=ASC(NS$)
  33. 604 RETURN
  34. 700 REM *** ALLOCATE AND CHECK
  35. 701 PRINT#1,"B-A"0;T%;S%:GOSUB900:OK%=1:IFEN$="65"THENOK%=0
  36. 702 RETURN
  37. 900 REM *** DISK ERROR CHECK
  38. 901 INPUT#1,EN$:IFEN$="00"OREN$="65"THENRETURN
  39. 902 PRINT" DISK ERROR #"EN$:(null):STOP
  40. 1000 PRINT"[147][149] 1541 [211][195][210][193][212][195][200][197][196][160][198][201][204][197][160][210][197][195][207][214][197][210][217] "
  41. 1001 REM *** SELECT FILE
  42. 1010 PRINT" [201]NSERT DISKETTE IN DRIVE #0  "
  43. 1015 PRINT" [210][197][212][213][210][206][146] = READY    [195][204][210][146] = STOP "
  44. 1020 GETG$:IFG$<>CR$ANDG$<>EX$GOTO1020
  45. 1025 IF G$ = EX$ THEN END
  46. 1030 PRINT#1,"I0":GOSUB900:OPEN9,8,9,"#":PRINT#1,"U1"9;0;18;0
  47. 1040 PRINT#1,"B-P"9;165:PRINT#9,CR$;:PRINT#1,"B-P"9;144:INPUT#9,ID$:CLOSE9
  48. 1050 PRINT"[145] [196][201][211][203]: "ID$"   "
  49. 1055 PRINT"  Y [146] = ACCEPT     N [146] = REJECT "
  50. 1060 GETG$:IFG$<>"Y"ANDG$<>"N"GOTO1060
  51. 1070 PRINT"[145]"SP$:IFG$="N"GOTO1000
  52. 1075 GOSUB500
  53. 1080 PRINT"[147]"
  54. 1085 PRINT" [211][195][210][193][212][195][200][197][196][160][198][201][204][197][160][196][201][210][197][195][212][207][210][217][160]"
  55. 1086 PRINT"### FILENAME         [212]  [211][160]"
  56. 1087 PRINT"--------------------------"
  57. 1090 FORI=0TOFL%STEP20:FORJ=0TO19:PRINTRIGHT$("  "+STR$(I+J+1),3);
  58. 1100 PRINT" "LEFT$(FL$(I+J)+SP$,16);
  59. 1105 PRINTRIGHT$(STR$(T%(I+J)),2)" "RIGHT$(STR$(S%(I+J)),2):NEXTJ
  60. 1110 INPUT" [210][197][195][207][214][197][210][160]# ([210][197][212][213][210][206] TO SEE MORE) [146][160][160][160][157][157][157]";RC$
  61. 1120 RC%=VAL(RC$):IFRC%<>0THENI=FL%
  62. 1130 NEXTI:IFRC%<>0GOTO1180
  63. 1140 PRINTLEFT$(DN$,24)" [197][206][196][160][207][198][160][196][201][210][197][195][212][207][210][217] - [210][197][208][197][193][212](Y/N)?[160][146]     ";
  64. 1150 GETG$:IFG$<>"Y"ANDG$<>"N"GOTO1150
  65. 1160 IFG$="Y"GOTO1085
  66. 1170 PRINT"[147]":GOTO1000
  67. 1180 RC%=RC%-1:IFFL$(RC%)=""GOTO1140
  68. 1200 PRINT"[147] [210][197][195][207][214][197][210]: "FL$(RC%)"    "
  69. 1210 PRINT"  Y [146] = ACCEPT     N [146] = REJECT "
  70. 1220 GETG$:IFG$<>"Y"ANDG$<>"N"GOTO1220
  71. 1230 IFG$="N"THENPRINT"[145]"SP$:GOTO1080
  72. 1240 PRINT"[145]  S [146]=[211][197][209]    U [146]=[213][211][210]    P [146]=[208][210][199] ?"
  73. 1250 GETG$:IFG$<>"S"ANDG$<>"U"ANDG$<>"P"GOTO1250
  74. 1260 TY%=130:IFG$>"P"THENTY%=129:IFG$>"S"THENTY%=131
  75. 1270 T%=T%(RC%):S%=S%(RC%):BL%=0:OPEN9,8,9,"#":XT%=T%:XS%=S%
  76. 1280 PRINT"[145]    [210][197][195][207][214][197][210][217][160][201][206][160][208][210][207][199][210][197][211][211]      "
  77. 1290 PRINT""LEFT$(RT$,38)CHR$(15);
  78. 1300 GOSUB700:IFOK%=0GOTO1400
  79. 1305 BL%=BL%+1:PRINT""RIGHT$(" "+STR$(T%),3)RIGHT$(" "+STR$(S%),3);
  80. 1310 GOSUB600:IFNT%=0GOTO1500
  81. 1320 XT%=T%:XS%=S%:T%=NT%:S%=NS%:GOTO1300
  82. 1400 IFXT%=T%ANDXS%=S%THENME$="     [206][207] [210][197][195][207][214][197][210][217][160][208][207][211][211][201][194][204][197]     ":GOTO1600
  83. 1405 PRINT#1,"U1"9;0;XT%;XS%:PRINT#1,"B-P"9;255:PRINT#9,CR$;:IFTY%=130GOTO1420
  84. 1410 PRINT#1,"B-P"9;253:PRINT#9,C0$C0$C0$;
  85. 1420 PRINT#1,"U2"9;0;NT%;NS%
  86. 1430 ME$="    [208][193][210][212][201][193][204][160][210][197][195][207][214][197][210][217][160][207][206][204][217]     "
  87. 1500 PRINT#1,"U1"9;0;DT%(RC%);DS%(RC%):PRINT#1,"B-P"9;BP%(RC%)
  88. 1510 PRINT#9,CHR$(TY%);:PRINT#1,"B-P"9;BP%(RC%)+28
  89. 1520 HI%=BL%/256:LO%=BL%-HI%*256:PRINT#9,CHR$(LO%)CHR$(HI%);
  90. 1530 PRINT#1,"U2"9;0;DT%(RC%);DS%(RC%)
  91. 1600 IFME$=""THENME$="   [198][213][204][204][160][210][197][195][207][214][197][210][217][160][211][213][195][195][197][211][211][198][213][204][160] [160]"
  92. 1610 CLOSE9:CLOSE15:PRINT"[147]"ME$:END
  93. 2000 OPEN15,8,15,"S0:RECOVER.1541":CLOSE15:SAVE"RECOVER.1541",8
  94.